package com.example.automatic.single;

import android.content.Context;
import android.os.Handler;
import android.os.Message;

import androidx.annotation.NonNull;

public class GlobalHandler extends Handler {

    private static volatile GlobalHandler mGlobalHandler = null;

    private HandlerMessageListener mHandlerMessageListener = null;

    public static GlobalHandler getInstance() {
        if (mGlobalHandler == null) synchronized (GlobalHandler.class) {
            if (mGlobalHandler == null) mGlobalHandler = new GlobalHandler();
        }
        return mGlobalHandler;
    }

    @Override
    public void handleMessage(@NonNull Message msg) {
        super.handleMessage(msg);

        if (mHandlerMessageListener != null) {
            mHandlerMessageListener.handleMessage(msg);
        }
    }

    public interface HandlerMessageListener {
        void handleMessage(Message msg);
    }

    public void setHandlerMessageListener(HandlerMessageListener mHandlerMessageListener) {
        this.mHandlerMessageListener = mHandlerMessageListener;
    }
}
